package com.wh.wisdomsite.xbox.us.entity;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.wh.wisdomsite.xbox.ba.entity.CommonFile;
import com.wh.wisdomsite.xbox.pr.entity.Project;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 员工实体
 *
 * @version V1.0
 * @Package: com.wh.wisdomsite.xbox.us.entity
 * @author: 丁奕
 * @date: 2018-08-03 15:06
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 **/
@TableName("us_employee")
public class Employee extends Model<Employee> {


    /**
     *PK, 员工ID
     */
    @TableId(type = IdType.UUID)
    private String emId;

    /**
     *FK, 所属公司
     */
    @TableField("companyId")
    private Integer companyId;

    /**
     * 所属公司实体
     */
    @TableField( exist = false )
    private Company company;

    /**
     *FK, 所属部门
     */
    @TableField("officeId")
    private Integer officeId;

    /**
     * 所属部门实体
     */
    @TableField( exist = false )
    private Office office;

    /**
     *FK, 所属项目
     */
    @TableField("prId")
    private String prId;

    /**
     * 所属项目实体
     */
    @TableField( exist = false )
    private Project project;

    /**
     *工号
     */
    @TableField("jobNumber")
    private String jobNumber;

    /**
     *姓名
     */
    @TableField("name")
    private String name;

    /**
     *性别  1:女  2:男
     */
    @TableField("sex")
    private String sex;

    /**
     *身份证号
     */
    @TableField("idCard")
    private String idCard;

    /**
     *出生年月
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField("birthday")
    private Date birthday;

    /**
     *户籍所在地
     */
    @TableField("regAddress")
    private String regAddress;

    /**
     *三类人员证书类型 
     * 1: 企业主要负责人
     * 2: 项目负责人
     * 3: 专职安全生产监督人员
     */
    @TableField("thrClsCertType")
    private String thrClsCertType;

    /**
     *三类人员证书编号
     */
    @TableField("thrClsCertNum")
    private String thrClsCertNum;

    /**
     *邮箱
     */
    @TableField("email")
    private String email;

    /**
     *员工手机
     */
    @TableField("employeePhone")
    private String employeePhone;

    /**
     *所任职务, 字典配置 
     */
    @TableField("employeeJob")
    private String employeeJob;

    /**
     *员工头像, 公共附件 
     */
    @TableField("employeePhoto")
    private String employeePhoto;

    /**
     * 员工头像，附件实体
     */
    @TableField(exist = false)
    private CommonFile employeePhotoCF;

    /**
     * 员工已完结项目归档
     */
    @TableField("prFinished")
    private String prFinished;

    /**
     * 项目完结状态
     */
    @TableField("prEndState")
    private String prEndState;


    /**
     *创建者
     */
    @TableField("createBy")
    private String createBy;

    /**
     *创建时间
     */
    @TableField("createDate")
    private Date createDate;

    /**
     *更新者
     */
    @TableField("updateBy")
    private String updateBy;

    /**
     *更新时间
     */
    @TableField("updateDate")
    private Date updateDate;

    /**
     *备注
     */
    @TableField("remark")
    private String remark;

    /**
     *数据状态
     */
    @TableField("dataState")
    private String dataState;

    public String getEmId() {
        return emId;
    }

    public void setEmId(String emId) {
        this.emId = emId;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public Integer getOfficeId() {
        return officeId;
    }

    public void setOfficeId(Integer officeId) {
        this.officeId = officeId;
    }

    public String getPrId() {
        return prId;
    }

    public void setPrId(String prId) {
        this.prId = prId;
    }

    public String getJobNumber() {
        return jobNumber;
    }

    public void setJobNumber(String jobNumber) {
        this.jobNumber = jobNumber;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getRegAddress() {
        return regAddress;
    }

    public void setRegAddress(String regAddress) {
        this.regAddress = regAddress;
    }

    public String getThrClsCertType() {
        return thrClsCertType;
    }

    public void setThrClsCertType(String thrClsCertType) {
        this.thrClsCertType = thrClsCertType;
    }

    public String getThrClsCertNum() {
        return thrClsCertNum;
    }

    public void setThrClsCertNum(String thrClsCertNum) {
        this.thrClsCertNum = thrClsCertNum;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEmployeePhone() {
        return employeePhone;
    }

    public void setEmployeePhone(String employeePhone) {
        this.employeePhone = employeePhone;
    }

    public String getEmployeeJob() {
        return employeeJob;
    }

    public void setEmployeeJob(String employeeJob) {
        this.employeeJob = employeeJob;
    }

    public String getEmployeePhoto() {
        return employeePhoto;
    }

    public void setEmployeePhoto(String employeePhoto) {
        this.employeePhoto = employeePhoto;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getDataState() {
        return dataState;
    }

    public void setDataState(String dataState) {
        this.dataState = dataState;
    }

    public Company getCompany() {
        return company;
    }

    public void setCompany(Company company) {
        this.company = company;
    }

    public Office getOffice() {
        return office;
    }

    public void setOffice(Office office) {
        this.office = office;
    }

    public Project getProject() {
        return project;
    }

    public void setProject(Project project) {
        this.project = project;
    }

    public CommonFile getEmployeePhotoCF() {
        return employeePhotoCF;
    }

    public void setEmployeePhotoCF(CommonFile employeePhotoCF) {
        this.employeePhotoCF = employeePhotoCF;
    }

    public String getPrFinished() {
        return prFinished;
    }

    public void setPrFinished(String prFinished) {
        this.prFinished = prFinished;
    }

    public String getPrEndState() {
        return prEndState;
    }

    public void setPrEndState(String prEndState) {
        this.prEndState = prEndState;
    }

    @Override
    protected Serializable pkVal() {
        return this.emId;
    }
}
